using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.VisualStudio.Modeling.Diagrams;

namespace Evaluant.EussDSL
{
    public class GlobalData
    {
        /// <summary>
        /// Used to know if a ReferenceNew shape just inserted has to relocate.
        /// </summary>
        public static bool demandRelocation = false;

        /// <summary>
        /// Used to know if the diagram file is present or not. If it isn't, then we have
        /// to use the automatic layout feature.
        /// </summary>
        public static bool isDiagramFilePresent = true;

        /// <summary>
        /// Number of entities detected after the PostLoadModel event
        /// </summary>
        public static int numberOfEntities = 0;

        /// <summary>
        /// List of the entity shape elements
        /// </summary>
        public static List<ShapeElement> lse = new List<ShapeElement>();

        /// <summary>
        /// List of valid generator names
        /// </summary>
        public static readonly List<string> generatorNames = new List<string>(new string[]{
            "guid",
            "native",
            "assigned",
            "inherited",
            "business"});

        /// <summary>
        /// List of valid EUSS DataBase types
        /// </summary>
        public static readonly List<string> dbTypes = new List<string>(new string[] {
            "AnsiStringFixedLength",
            "Binary",
            "Boolean",
            "Byte",
            "Currency",
            "Date",
            "DateTime",
            "Decimal",
            "Double",
            "Guid",
            "Int16",
            "Int32",
            "Int64",
            "Object",
            "SByte",
            "Single",
            "String",
            "StringFixedLength",
            "Time",
            "UInt16",
            "UInt32",
            "UInt64",
            "VarNumeric"});
    }
}
